aboutsummaryrefslogtreecommitdiff
path: root/src/routes/grocery/[id]/+page.server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/grocery/[id]/+page.server.ts')
-rw-r--r--src/routes/grocery/[id]/+page.server.ts10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/routes/grocery/[id]/+page.server.ts b/src/routes/grocery/[id]/+page.server.ts
index a4ad377..232568c 100644
--- a/src/routes/grocery/[id]/+page.server.ts
+++ b/src/routes/grocery/[id]/+page.server.ts
@@ -16,6 +16,7 @@ import {
parseFormString,
parseOptionalNumber,
} from '$lib/server/services/validation';
+import { isUniqueViolation } from '$lib/server/db/errors';
import type { Category, Grocery, Reference } from '$lib/server/services/types';
import type { Actions, PageServerLoad } from './$types';
@@ -86,7 +87,14 @@ export const actions: Actions = {
return fail(400, { error: 'Le nom est requis' });
}
- await updateGrocery(groceryId, name, categoryId);
+ try {
+ await updateGrocery(groceryId, name, categoryId);
+ } catch (error) {
+ if (isUniqueViolation(error)) {
+ return fail(400, { error: 'Un article porte déjà ce nom' });
+ }
+ throw error;
+ }
return { success: true, type: 'update' as const };
},